/*
 * @Author: 李超越 1509572300@qq.com
 * @Date: 2024-07-21 17:23:45
 * @LastEditors: 李超越 1509572300@qq.com
 * @LastEditTime: 2024-07-21 18:25:55
 * @FilePath: /my_git/lesson21_fd/mytest.c
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
#include <sys/stat.h>


//按位传参
// #define one 1
// #define two (1<<1)
// #define three (1<<2)
// #define four (1<<3)
// #define five (1<<4)

// void Print(int flag)
// {
//     if(flag&one)
//     {
//         printf("1\n");
//     }
//     if(flag&two)
//     {
//         printf("2\n");
//     }
//     if(flag&three)
//     {
//         printf("3\n");
//     }
//     if(flag&four)
//     {
//         printf("4\n");
//     }
//     if(flag&five)
//     {
//         printf("5\n");
//     }
// }


// int main()
// {
//     Print(one);
//     printf("-----------------------\n");
//     Print(two);
//     printf("-----------------------\n");
//     Print(one|two);
//     printf("-----------------------\n");
//     Print(one|two|three);
//     printf("-----------------------\n");
//     Print(one|two|three|four|five);
//     printf("-----------------------\n");
//     return 0;
// }

int main()
{
    int fd=open("log.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
    dup2(fd,1);
    printf("xxxxxxxxxxxxxxx\n");
    
    // // close(0);//输入
    // close(1);//输出
    // // close(2);//错误输出
    // // int fd=open("log.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);//输入重定向
    // int fd=open("log.txt",O_WRONLY|O_CREAT|O_APPEND,0666);//追加重定向
    // //printf("fd:%d\n",fd);
    // // int a=0;
    // // scanf("%d",&a);
    // printf("hello printf...\n");
    // fprintf(stdout,"hello fprintf...\n");

    // int fd=open("log.txt",O_RDONLY);
    // if(fd==-1)
    // {
    //     perror("open");
    //     return 1;
    // }
    // char buffer[1024];
    // ssize_t s=read(fd,buffer,sizeof(buffer));
    // if(s>0)
    // {
    //     buffer[s]=0;
    //     printf("%s",buffer);
    // }
    // close(fd);

    // printf("%d\n",stdin->_fileno);
    // printf("%d\n",stdout->_fileno);
    // printf("%d\n",stderr->_fileno);
    // umask(0);
    // int fd1=open("log1.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
    // int fd2=open("log2.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
    // int fd3=open("log3.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
    // int fd4=open("log4.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
    // printf("%d\n",fd1);
    // printf("%d\n",fd2);
    // printf("%d\n",fd3);
    // printf("%d\n",fd4);
    // close(fd1);
    // close(fd4);
    // close(fd3);
    // close(fd2);

    // int fd=open("log1.txt",O_WRONLY,0666);
    // const char* str="hello\n";
    // write(fd,str,strlen(str));
    // close(fd);
    // int fd=open("log1.txt",O_WRONLY|O_CREAT,0666);
    // const char* str1="111";
    // write(fd,str1,strlen(str1));
    // close(fd);

    // fd=open("log1.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
    // write(fd,str,strlen(str1));
    // close(fd);
    // if(fd==-1)
    // {
    //     perror("open");
    //     return 1;
    // }
    return 0;
}